package com.hrcx.mystery.service;

import com.github.pagehelper.PageInfo;
import com.hrcx.mystery.common.PageParamRequest;
import com.hrcx.mystery.dto.TasksSearchDto;
import com.hrcx.mystery.pojo.EbMysteryScheduleJob;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @author LinXiPeng
 */
public interface EbMysteryScheduleJobService extends IService<EbMysteryScheduleJob> {

    /**
     * 立刻执行定时任务
     *
     * @param jid 定时任务编号
     * @return 返回结果
     */
    Boolean runById(Long jid);

    /**
     * 恢复任务
     *
     * @param jid 任务编号
     * @return 返回结果
     */
    Boolean resumeJob(Long jid);

    /**
     * 暂停任务
     *
     * @param jid 任务编号
     * @return 是否成功
     */
    Boolean pauseJob(Long jid);

    /**
     * 删除任务
     *
     * @param jid 任务编号
     * @return 是否成功
     */
    Boolean deleteJob(Long jid);

    /**
     * 创建任务
     *
     * @param scheduleJob 任务对象
     * @return 是否成功
     */
    Boolean createJob(EbMysteryScheduleJob scheduleJob);

    /**
     * 修改任务
     *
     * @param scheduleJob 任务对象
     * @return 是否成功
     */
    Boolean updateJob(EbMysteryScheduleJob scheduleJob);

    /**
     * 获得任务列表
     *
     * @param tasksSearchDto   请求参数
     * @param pageParamRequest 分页参数
     * @return 定时任务列表
     */
    PageInfo<EbMysteryScheduleJob> getTaskList(TasksSearchDto tasksSearchDto, PageParamRequest pageParamRequest);

}
